23

» WarCraft 3 / Как играть онлайн?

Похожие вопросы:

ответ
Alex Daniels, в варике поддержки сокетов нет. Ваше решение костыльное.
ответ
Я тебе вот что скажу... Играю в Варик с 2006 года.
Короче ща перешёл в Гарену из-за того, что батл нете нельзя нормально хостить карту (там одни боты).
В общем: народу в гарене полно(комнаты почти всегда забыты по максимому). И что странно - половина из игроков - школьники... Откуда столько много школьников мне не понятно.
Но одно могу сказать точно - в Варик 3 играет больше народу, чем в Старкрафт 2. И будут играть ещё долго.
А я думал, что к 2010 году в варике 3 ТОЧНО никого не останется... Оказывается я жестко ошибался)

23

» WarCraft 3 / Помогите с функцией

Похожие вопросы:

ответ
способности написаны не на jass
способности это часть движка
и стоит хоть иногда читать статьи прежде чем задавать вопросы
а если тебя интересуют функции jass то это в common.j
ответ
Нигде. Нет их. Стандартные спеллы не написаны на JASS, тебе же уже сказали.
ответ
Farrien, попробуй скопировать функции в отдельную карту и глянь будет ли там работать
и зачем ты написал udg_ перед 2 переменными?
ответ
тут дело в конфликте
ибо системные функции(создание стартовых точек,main и прочее) депротектор автоматически переносит в файл для пользовательских функций
и теперь тебе надо просто удалить их из этого файла
файл называется war3map.wct
вот на будущее статья

23

» WarCraft 3 / Как сделать условие?

Похожие вопросы:

ответ
SomeFire, Suite,
Всё. Замутил.
Без всяких переменных, и для любого героя.
ответ
вот карта
в ней у героя-паладина есть способность - неуязвимость
при использовании все союзные юниты в радиусе 500 станут неуязвимы и будут записаны в группу ИЛИ если они уже в группе - станут уязвимы и будут исключены из группы
рядом с отрядом есть 3 волчьих всадника. они могут кастовать сеть на союзные войска. сеть может быть прокастована даже на НЕУЯЗВИМЫЕ войска, НО - не на юнитов из нашей группы. Ты увидишь сообщение в игре при попытке кастануть сеть на юнита из группы.
если герой умрет - все юниты в группе станут уязвимы.
для проверки нужно было поместить несколько неуязвимых нейтралов рядом с отрядом, но да ладно - надеюсь идею ты понял
ответ
Ник игрока - это строка. Условие должно быть строковым. Например:
  • Юнит поднимает предмет
  • Условия: Name Of (Owner of (Hero manipulating item)) не равно ТЕКСТ
  • Условия: Тип предмета равен "Боевые когти"
  • Герой - Выбросить предмет (Item beign manipulatid, hero manipulating item)
Советую еще почитать вот этот ответ. Там есть про "выбрасывание предмета". Та же самая ситуация, но другое условие
ответ
гуи
ответ
Ну только триггерные системы отрядов, была такая...
Вот пример ссылочка
Были и другие, поиск в помощь.
Вот еще ссылка

23

» WarCraft 3 / Понижения брони в %

Похожие вопросы:

ответ
читай статьи и f.a.q.
там написано как сделать отрицательные значения в скиле
ответ
Вот эта статья.
ответ
Ghostly, если способности не стакаются, можно попробовать вместо предметов со способностями использовать пустышки, а способности от них запихнуть в скрытый спеллбук и увеличить количество уровней. При подборе/выбрасывании делать проверку на наличие предметов и заносить в переменную. Например, те же ботинки +5, перчатки +10 - в сумме 15. Значит, скрытой способности нужно установить уровень 15.
Но это в теории. Я не пробовал такое.
У спеллбука есть несколько неприятных особенностей вроде сбрасывания уровня способностей при загрузке сохранённой игры, но можно делать проверку во время этой загрузки.

23

» WarCraft 3 / Помогите.

Похожие вопросы:

ответ
юзаешь блинк повышаешь или уменьшаешь лвл блинка (в котором в лвлах выставляешь уменьшающуюся дистанцию)
ответ
Тема для заказа скилов xgm.guru/p/wc3/needspells
ответ
Делаешь два типа ворот - открытый и закрытый. Рисуешь пути для открытых ворот и для закрытых. Делаешь спелл "Открыть/Закрыть ворота" и даешь его двум моделям - воротам открытым и закрытым. Ну ты понял. В триггерах пропиши код, когда кастуется способность "Открыть/Закрыть ворота", проверяется какой тип боевой единицы. Если Ворота закрытые, триггерно меняешь их на открытые с сохранением положения. Если ворота открытые, делаешь условие (если в воротах ктото стоит, то их невозможно закрыть и спелл не срабатывает), меняешь их на закрытые. Все легче простого.
Могу скинуть карту, если вы там что-то сможете разобрать.
ответ
Юнитов поднимает тогда же, когда и опускает, потому что я удаляю их из DedG[3], но забываю удалить из группы снарядов, таким образом, к тем кто попал под падение, уже навечно задействован акт снарядов(опускание), пока они в DedG[3]

23

» WarCraft 3 / Лимиты

Принятый ответ
Похожие вопросы:

ответ
koloff, единственно верный вариант - перетащить весь импорт из карт в кампанию. Да, трудозатратно. Да, итоговый вес доставляет. Увы.
Представь длину списка файлов в импорте кампании под конец работы
Поэтому придется думать, что загружать, а что нет. По своему опыту знаю, что вычищать потом неиспользованные данные из импорта - сущий ад. Особенно если к каждой модели по 3-4 текстуры.
И да, музыка в mp3 формате тоже не дает грузится. Онли вав.
Все грузится.
ответ
В качестве такого извращенного способа, можно использовать CheatEngine, если уже ничего не работает. Подменить число декораций на карте на 0 или какое-либо число (просто с каждой поставленной декорацией отсеиваешь значения, а потом замораживаешь на определенном).
ответ
в самой последней строке самой последней функции присваивай какое-то значение глобалке и будет тебе счастье знать, что всё закончилось успешно
ответ
Vayne, у меня вес составляет ~140 мб. Но это "пока". Не факт, что у тебя тоже будут краши. Возможно, у меня фаталит в совмещении с триггерами, объектами в РО, импортом и всем остальным. Неизвестно. Решения проблемы нет. Вероятно я первый, кто с этим столкнулся, хз короч. Средняя занимаемой оперативки редактора ~1.5 гб, мб еще из за этого. Так что не парься)
ответ
насколько я знаю, триггеры перестают создаваться из-за лимита операций, обойти его можно делая штукенции на jass, ибо там можно делать инициализацию не через стандартные пути

23

» WarCraft 3 / Защита карты

Принятый ответ
Похожие вопросы:

ответ
никак
ответ
lll_Kirito_lll:
Хочется иметь у себя только модель допустим )
Как вариант, сделать так, что бы модель была разбита на множество текстур которые раскиданы по самым дурацким путям. Ни какой картодел не будет вытаскивать такую модель, ни за что.
ответ
Tumart:
quq_CCCP, а можно поподробнее? И это защитит карту от инжекта?
Подробно - это сделай за меня?
Суть:
 call  BJDebugMsg( I2Sx( 100500  ) )
Выдаст разные значения в депротектнутой и нормальной картах, пока это теория но возьмите и проверьте.
I2Sx - фольклорная функция ретурн бага, суть преобразует хеш от строки в строку. именно хеш а не инт. т.е адрес в таблице строк на строку.
вот RetunrBug ( www.hiveworkshop.com/threads/accessing-memory-from-the-script-it... )
функция в либе Typecast - I2SH
Ну кароче проверил:
function Trig_J_Test_Actions takes nothing returns nothing
    local integer i = 486
    local string str = null
    set str = S2S( I2SH( i ) )
    call BJDebugMsg( str )
    set str = null
endfunction

//===========================================================================
function InitTrig_J_Test takes nothing returns nothing
    set gg_trg_J_Test = CreateTrigger(  )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_J_Test, Player(0) )
    call TriggerAddAction( gg_trg_J_Test, function Trig_J_Test_Actions )
endfunction
При добавлении, удалении 3 функций сменяется строка по этому адресу, самое главное найти последнюю строку (ну или как я от балды ввел число) хотя я не уверен что прокатит с числом от балды, нужно найти последнюю строку на момент загрузки карты и смотреть её адрес, а после смотреть что будет записано по этому адресу в таблице строк.
ответ
Karp, Ой способов защиты 100500, щяс есть мемхак, я уже выкладывал пример как проверить вводились ли в код карты измненения.
Так же есть возможность писать код карты байткодами, которые внезапно низя прочитать или перевести в JASS это внутренние инстркции JASS машины. Но это достаточно сложно. Так же Можно загружать свои ДЛЛ, а это дает полный контроль над картой, можно зашифровать и сжать данные в архиве хер знает какими алгоритмами которые никогда не видел варкравт, а при загрузке срипта вызывать Дллку которая бы и расшифровывала это дело и вызывала функцию чтения архива + проверяла контрольную сумму архива (вроде в мемхаке была эта функция), контрульная сумма не та - выгружаем из ДЛЛ вирус, чтонить на подобии шифровальщиков. И читерам уже не до карты и варкравта в целом...
Это не для гуи новичков, придется долго морщить лоб и писать карту на jass + малость в с++ шарить.
ответ
XGM Bot:
Похожие вопросы:

ответ
никак
ответ
Ну да, после этого в редакторе карт не откроешь. Но им и никто не пользуется для этого, когда есть MPQ Editor.
ответ
lll_Kirito_lll:
Хочется иметь у себя только модель допустим )
Как вариант, сделать так, что бы модель была разбита на множество текстур которые раскиданы по самым дурацким путям. Ни какой картодел не будет вытаскивать такую модель, ни за что.
ответ
Tumart:
quq_CCCP, а можно поподробнее? И это защитит карту от инжекта?
Подробно - это сделай за меня?
Суть:
 call  BJDebugMsg( I2Sx( 100500  ) )
Выдаст разные значения в депротектнутой и нормальной картах, пока это теория но возьмите и проверьте.
I2Sx - фольклорная функция ретурн бага, суть преобразует хеш от строки в строку. именно хеш а не инт. т.е адрес в таблице строк на строку.
вот RetunrBug ( www.hiveworkshop.com/threads/accessing-memory-from-the-script-it... )
функция в либе Typecast - I2SH
Ну кароче проверил:
function Trig_J_Test_Actions takes nothing returns nothing
    local integer i = 486
    local string str = null
    set str = S2S( I2SH( i ) )
    call BJDebugMsg( str )
    set str = null
endfunction

//===========================================================================
function InitTrig_J_Test takes nothing returns nothing
    set gg_trg_J_Test = CreateTrigger(  )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_J_Test, Player(0) )
    call TriggerAddAction( gg_trg_J_Test, function Trig_J_Test_Actions )
endfunction
При добавлении, удалении 3 функций сменяется строка по этому адресу, самое главное найти последнюю строку (ну или как я от балды ввел число) хотя я не уверен что прокатит с числом от балды, нужно найти последнюю строку на момент загрузки карты и смотреть её адрес, а после смотреть что будет записано по этому адресу в таблице строк.
ответ
Karp, Ой способов защиты 100500, щяс есть мемхак, я уже выкладывал пример как проверить вводились ли в код карты измненения.
Так же есть возможность писать код карты байткодами, которые внезапно низя прочитать или перевести в JASS это внутренние инстркции JASS машины. Но это достаточно сложно. Так же Можно загружать свои ДЛЛ, а это дает полный контроль над картой, можно зашифровать и сжать данные в архиве хер знает какими алгоритмами которые никогда не видел варкравт, а при загрузке срипта вызывать Дллку которая бы и расшифровывала это дело и вызывала функцию чтения архива + проверяла контрольную сумму архива (вроде в мемхаке была эта функция), контрульная сумма не та - выгружаем из ДЛЛ вирус, чтонить на подобии шифровальщиков. И читерам уже не до карты и варкравта в целом...
Это не для гуи новичков, придется долго морщить лоб и писать карту на jass + малость в с++ шарить.


23

» WarCraft 3 / Доп.кампания

Похожие вопросы:

ответ
Знаю такой баг. Вылечтл удалением из карты всего импорта-мусора и переводов путей импорта на источник из кампании.
Т.е. этот баг возникает при очень большом весе впихиваемой в кампанию карты.
ответ
Файл повреждённый просто, его и mpq master не открыл и model viewer. Бэкапы надо делать
А про вес то достаточно пару байт в начале стереть.
И для человека это незаметно
Насколько я понял там больше половины файла пустыми символами записано. Так что ищи что у тебя его испортило.
ответ
Хозяин Миров:
В редакторе кампаний открой "Правку", там экспорт есть.
ответ
Maxsavin, берёшь бекап и продолжаешь работать в нём
на будущее будет урок
делай бекап после любого серьёзного изменения
ответ
~8gabriel8:
Тебе нужно открыть редактор кампаний, на вкладке с кнопками экрана кампании внизу можно будет указать фон и музыку.

23

» WarCraft 3 / Вопрос по опыту героев варкрафта.

Похожие вопросы:

ответ
cJass, vJass и Jass2 - разные концы одной палки. Но после освоения структур, которые есть в vJass и освоения синтаксиса cJass ты вполне сможешь быстро освоить любой язык C-семейства.

23

» WarCraft 3 / Как заменить BJ-функции?

Принятый ответ
Похожие вопросы:

ответ
вопервых ты в 1 и ту же ячейку пытаешся записать 2 значения (location и integer)
во вторых ты создаёш область по кординатам а следующей строчкой находиш эти же кординаты с помощью функций
в 3 ты сохранял точку в хэш и сразу же удалял её
и в 4 ты не инициализировал хэш
function Trig_SlayerUlt_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00V'
endfunction
function Ultaction takes nothing returns nothing
local timer st = GetExpiredTimer()
local integer sid = GetHandleId(st)
local unit su = LoadUnitHandle (udg_Hash, sid, 0)
if IsUnitType(GetEnumUnit(), UNIT_TYPE_STRUCTURE) == false and IsUnitEnemy( GetEnumUnit(), GetOwningPlayer(su)) == true then
call UnitDamageTargetBJ( su, GetEnumUnit(), 210.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
endif
set su = null
endfunction
function UltimateRun takes nothing returns nothing
local timer st = GetExpiredTimer()
local integer sid = GetHandleId(st)
local unit su = LoadUnitHandle (udg_Hash, sid, 0)
local integer suid = GetHandleId(su)
local location suloc = LoadLocationHandle(udg_Hash, sid, 1)
local effect sueff = LoadEffectHandle (udg_Hash, sid, 2)
local real x = GetLocationX( suloc )
local real y = GetLocationY( suloc )
local rect surect = Rect( x - 600.00*0.5, y - 600.00*0.5, x + 600.00*0.5, y + 600.00*0.5 )
local location random = Location (GetRandomReal(x-600*.5,x+600*.5), GetRandomReal (y-600*.5, y+600*.5))
local integer sc = LoadInteger (udg_Hash, sid, 10)
call SetUnitPositionLoc( su, random )
call SetUnitAnimation( su, "attack" )
call AddSpecialEffectLocBJ( random, "Abilities\\Spells\\Human\\Thunderclap \\ThunderClapCaster.mdl" )
call DestroyEffectBJ ( GetLastCreatedEffectBJ() )
call AddSpecialEffectLocBJ( random, "Abilities\\Spells\\Items\\AIil\\AIilTarget.mdl" )
call DestroyEffectBJ ( GetLastCreatedEffectBJ() )
call ForGroupBJ ( GetUnitsInRangeOfLocAll(250.00, suloc), function Ultaction )
set bj_wantDestroyGroup=true
call SaveInteger(udg_Hash,sid,10,sc + 1)
if sc >= 10 then
call SetUnitPositionLoc( su, suloc )
call DestroyEffectBJ( sueff )
call SetUnitPathing( su, true )
call SetUnitInvulnerable( su, false )
call PauseUnitBJ( false, su )
call SetUnitVertexColorBJ( su, 100, 100, 100, 0.00 )
call PauseTimer(st)
call DestroyTimer(st)
call FlushChildHashtable(udg_Hash, sid)
endif
set suloc = null
set random = null
set st = null
set su = null
set sueff = null
endfunction
function Trig_SlayerUlt_Actions takes nothing returns nothing
local timer st = CreateTimer()
local integer sid = GetHandleId(st)
local unit su = GetTriggerUnit()
local integer suid = GetHandleId(su)
local location suloc = GetUnitLoc(su)
local effect sueff
local real x=GetUnitX(su)
local real y=GetUnitY(su)
call AddSpecialEffectTargetUnitBJ ( "hand right", su, "Abilities\\Weapons \\PhoenixMissile\\Phoenix_Missile.mdl" )
set sueff = GetLastCreatedEffectBJ()
call SetUnitPathing( su, false )
call SetUnitInvulnerable( su, true )
call PauseUnitBJ( true, su )
call SetUnitVertexColorBJ( su, 100, 100, 100, 50.00 )
call SaveUnitHandle(udg_Hash, sid, 0, su)
call SaveAgentHandle(udg_Hash, sid, 1, suloc)
call SaveAgentHandle(udg_Hash, sid, 2, sueff)
call SaveAgentHandle(udg_Hash, suid, 0, st)
call SaveInteger (udg_Hash, sid, 10, 1)
call TimerStart( st, .3, true, function UltimateRun )
set suloc = null
set st = null
set su = null
set sueff = null
endfunction
===========================================================================
function InitTrig_SlayerUlt takes nothing returns nothing
set gg_trg_SlayerUlt = CreateTrigger ( )
set udg_Hash=InitHashtable()
call TriggerRegisterAnyUnitEventBJ ( gg_trg_SlayerUlt, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition ( gg_trg_SlayerUlt, Condition( function Trig_SlayerUlt_Conditions ) )
call TriggerAddAction ( gg_trg_SlayerUlt, function Trig_SlayerUlt_Actions )
endfunction
ответ
Steal nerves:
filterGetUnitsOfTypeIdAll - фильтр, вместо него должно быть написано либо null или Condition( function XXX) Короче зачем нужен фильтр? Фильтр при выборе всех юнитов сразу отсеивает не нужных, если по условию не подходит, то выкидывает.. Вам сразу достается готовая группа с нужными юнитами
А в качестве переменных используй GetFilterUnit, GetFilterPlayer. На гуи по-другому называют MatchingUnit
где XXX - название функции, эта функция возвращает boolean (то есть истину или ложь)
вбей в поиск названии функции, может найдешь ответ
например выделяем все здания UNIT_TYPE_STRUCTURE, а те, кто не является зданием отсеиваем
function XXX takes nothing returns boolean
    return IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE)
endfunction
насчет статьи не видел, это придет с пониманием. Главное начать. Сначала тупо конверт, и оптимизация. А дальше можешь сам
что у тебя там не работает скидывай сюда

23

» WarCraft 3 / Помогите с утечками, пожалуйста)

Принятый ответ
Похожие вопросы:

ответ
GF RaiseD:
Я знаю только один способ избавления от утечек - писать код без них.Тебе нужен кто-то знающий игровые скрипты или злосчастный Jass. Иначе уровень неопределённости вопроса не позволит подсказать что-то дельное.

23

» WarCraft 3 / Способности

Похожие вопросы:

ответ
Когда юнит проучивает пассивку, добавляй в группу юнита, который выучил пассивку. Дальше все просто -
Юнит умирает
Киллинг юнит в нашей группе - да
Дайинг юнит не в команде владельца киллинг юнит.
Игрок - адд проперти - 500 золото (овнер оф киллинг юнит)
ответ
скорее всего, он говорит о SetUnitMovespeed ()
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь
ответ
На JASS-е есть функция GetLearnedSkill(), которая выдает rawcode выученного умения. Создаешь переменную типа "целочисленная" с названием SkillCode, потом в начале действий триггера пишешь через Custom Script что-то типо этого:
set udg_SkillCode=GetLearnedSkill()
и затем делаешь какие тебе там нужны сравнения на переменную SkillCode.
ответ
XGM Bot:
Похожие вопросы:

ответ
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
ответ
ИИ чтоли не кастует? Сделай триггерный каст, Событие - юнит обнаружил цель в пределах досягаемости, проглотить не в кулдауне и цель неуязвимый враг, пойти и проглотить юнита...
ответ
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
ответ
Ну тебе нужно чтобы был прямо таки бафф который можно рассеивать?
Для начала сделай способность, и баф на основе какой нибудь пустышки, подойдет ярость у некромантов, так же переодический триггер который раз в пол секунды проверяет всех юнитов в группе, есть ли у них бафф если юнит мертв или у него нет баффа, то у юнита удаляется способность на доп урон зданиям и сам унит удаляется из группы.
При касте твоим шаманов заклинания на цель, ты добавляешь цель заклинания в группу, которую и перебирает описанный выше триггер.
Надеюсь понятно?
ответ
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.


23

» WarCraft 3 / Триггер не работает

Похожие вопросы:

ответ

установка

копируешь себе в карту:
  1. первые 2 триггера
  2. обе нестандартных способности

использование

в тот момент, когда нужно изменить юниту максимальное здоровье или ману вставляешь в триггер __Custom Script__:
call SetUnitMaxState (unit u, unitstate state, real newValue)
где:
  • umit u заменяешь на нужного юнита (предварительно записав его в переменную)
  • unitstate state заменяешь на UNIT_STATE_MAX_LIFE, если нужно изменить максимальные жизни и UNIT_STATE_MAX_MANA, если нужно изменить максимальную ману
  • real newValue заменяешь на нужное значение

пример

Custom Script: call SetUnitMaxState (udg_u, UNIT_STATE_MAX_MANA, 1000)
устанавливает юниту, записанному в переменную udg_u (в редакторе переменных просто u), ману в количестве равном 1000
также доступно добавление юниту здоровья или маны:
Custom Script: call AddUnitMaxState (udg_u, UNIT_STATE_MAX_LIFE, 536)
устанавливает юниту, записанному в переменную udg_u, здоровье в количестве равном текущее здоровье + 536
ответ
Steal nerves:
  1. посмотри в РО у абилок прописаны приказы
  2. попробуй выводить на экран (см. внизу ссылку). Тыкни этой абилкой на юнита и проверь
  3. поищи в текстовике cj_order.j (находится в архиве игры). Кстати можно этот текстовик на сайте найти, Скорп 1000 выставлял
  4. поищи на сайте, такой вопрос был. Кому-то я на такой вопрос отвечал
ратуша самой себе может продавать? попробуй настроить способность, и потыкает на себя пусть. Мб нельзя
ответ
ScopteRectuS, Я решил проблему там баг, если указать регион как точку назначения портала, то с ним триггеры перестают работать. Я просто указал другой регион.
biridius, Ну это альфа версия, за 5 мин сделал, знаю об утечках.

23

» WarCraft 3 / Как мне сделать условие?

Похожие вопросы:

ответ
событие - игрок пишет в чат сообщение "-privat" как полное совпадение
условие - имя игрока == "Maharajab1k"
действия - нужные при срабатывании команды действия

Для остальных игроков команды не будет существовать как данности.
ответ
  1. Вместо (юнит триггера) вставишь своего героя. (Скрин внизу)
  2. Редактор обьектов ---> Способности ---> нейтрально-враждебные ---> герои ---> повышение характеристик (редактируешь или создаешь нестандартную и редактируешь под себя)
Скрин...
ответ
Если колчество исполнений триггера (в котором складываются предметы) = 1, то вывести сообщение.
ответ
Проверяешь здоровье
наносишь единицу маг.урона
сравниваешь здоровье
отсеиваешь у кого не изменилось
востанавливаешь потраченое хп

23

» WarCraft 3 / Вес моделей

Похожие вопросы:

ответ
пусть уменьшает число вертексов и трианглов. и в конце концов учится моделить в визе, как Вуль.
ответ
перед удалением в редакторе анимации нажмите на Кадры>>>Очистить, потом удаляйте саму анимацию по завершению в редакторе вершин Оптимизация все пункты из графы.
ответ
это не стол заказов а модуль Q/A
с просьбой о помощи в модели на заказ (или как она там называется)
ответ
При конвертации моделей из игр в MDX их вес велик как и вес их текстур ! Я оптимизирую и сжимаю модель через MDLvis а текстуры через BLP Laboratory но их вес все еще внушителен ( Есть ли другие варианты среза веса без дефектов материала ?
Нет. Только удаление лишних анимаций. Остальную оптимизацию веса сделает mdlvis.
При импорте некоторых моделей в карту возникает проблема с их выбором при манипуляции ( Передвижения ) словно их Выбор отсутствует , Думаю некоторые с подобным сталкивались ...
Если модель нельзя выделить в игре курсором, у неё отсутствуют collision shapes (формы коллизии). Их можно добавить в War3ModelEditor -> Окна -> Редактор узлов -> правый клик -> Создать форму - > отредактировать размеры и положение. Их можно добавить несколько, чтобы покрыть модель целиком. Они отвечают за взаимодействие модели с курсором.

Один ресурс - один вопрос, после пойдут замечания.
ответ
Manulli, на 1.26а есть способ обойти этот лимит с помощью мемхака но он очень сложный
а учитывая твои вопросы ты не сможешь это сделать
так что лучше делай как все
т.е. карта на стандартных моделях а mix заменяет их на твои
в результате те у кого есть mix будут видеть твои модели а те у кого нету будут видеть стандартные модели
ну и в игре сообщение выведи что можно скачать архив с крутыми моделями на таком то сайте

23

» WarCraft 3 / Больше утечек

Принятый ответ
Похожие вопросы:

ответ
он начнёт лагать
выражение калькуляторщик знакомо?
так же не стоит забывать что лимит 2гига оперативы
больше вар просто не может брать
ответ
Карта со всеми утечками и описанием их.
Вместо проклятия банши можно юзать туман(не рекоменд) или безмолвие(там есть вроде бы шанс промаха).
Ещё можно сделать ауру на основе пламени феникса, которое действует на своих.
Юнит повреждён
  • урон меньше 1
  • источник - союзный герой
дать уклонение
вейт/таймер
убрать уклонение если триг юнит не имеет баффа пламени(длительность регулируем)
1
ответ
Патиссончик, про центр области не заметил
точка каждый раз создаётся заново и это утечка
Патиссончик, есть прога на сайте для записи логов
так же есть дебаг через прелоад на сайте
вот счётчик утечек
ответ
Во втором случаи неудивительно, не обнуленная локлка осталась висеть в функции, пробуй юзать глобалки либо делай так:
function CreateUnitBj takes uniut u returns unit 
set u = CreateUnit( Player(0), 'hpea', 0.00, 0.00, 0.00 )
return u
endfunction
ответ
Вместо точек и областей лучше использовать координаты.
Юнит создаётся так:
call CreateUnit(Игрок, 'id юнита', x, y, угол поворота)

23

» WarCraft 3 / Перевод карты на английский

Похожие вопросы:

ответ
Tand, под кодировкой я имею в виду кодировку. Есть такая штука, определяет какими комбинациями нулей и едениц в бинарном виде кодируется каждый символ. Если при сохранении использована не та кодировка, которую понимает игра, то игра, соответственно, неможет сопоставить нулям и еденицам из файла конкретные символы, а значит ничего не показывает или показывает совсем не то, что было написано изначально.
Скачай Notepad++ -встроенные в винду средства годятся разве что заметки о жизни офисного планктона писать.
ответ
Пиши текст с начала в онлайн декодере , после перекодируй вот так:[UTF-8(русский текст)>CP1251(кодировка варика)] и результат вставь в карту.
ответ
Крашлог и карту желательно, мб где то пропустили скобку?

23

» WarCraft 3 / Как заменить Wait на Таймер?

Похожие вопросы:

ответ
Сама функция TriggerSleepAction (Wait) не вызывает утечек, но багнута и при использовании в качестве задержек может способствовать утечкам, поэтому никаких вейтов в спеллах и всяких респаунах - только таймеры, вейты нужны для синхронизации данных и роликов и точка!

23

» WarCraft 3 / Как проверить наличие способности у юнита?

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
глобальный массив не нужен. сохраняй группу в хэш-таблицу на хэндл героя, потом загружай ее когда надо. у каждого героя будет своя группа
вот пример, молот бурь съедает юнита а удар грома ставит всех юнитов обратно
ответ
Просто скрой ее

23

» WarCraft 3 / Посоветуйте карт

Похожие вопросы:

ответ
В этом архиве ищи свои скиллы, в [скобках] смотри нужный ID.
ответ
Footmen Frenzy и Legion TD конечно же!
ответ
quq_CCCP:
bigwolf2000, Чувак, тебе никто не скажет в чем дисинх даже если у него будет весь код перед глазами.
Нужно делать дебаги и играть с тестерами, чтобы отловить десинх.
Опен версию карту в студию если хотите помощи, все экстрасенсы не вышли из новогоднего отпуска...
Карту могу скинуть, но сюда или в лс?)
Steal nerves:
на данный момент ничего неизвестно, поэтому могут посоветовать читать статью дока про десинк
есть логгер xgm.guru/p/wc3/95728
и нужно знать jass
А это уже проблема =(
ответ
Пиши текст с начала в онлайн декодере , после перекодируй вот так:[UTF-8(русский текст)>CP1251(кодировка варика)] и результат вставь в карту.
ответ
Добавить модели в карту, расставить декорации в редакторе, удалить импортированные модели из карты перед самым релизом карты.
Profit.

23

» WarCraft 3 / Neodex

Похожие вопросы:

ответ
Наверное скорее проблема в версии что плагина что макса ну поробуй другую версию макса с 2011-2014 и точно убедись что плагин именно под твою версию.
Наверное закрывай тему так как знатаков макса здесь не очень много.
ответ
Нормально экспортирую неодексом из восьмого и одиннадцатого макса. Экспортирует статичную модель? Перед экспортом нужно ведь выделить не только саму модельку, но ещё и кости.
ответ
ledoed, короче походу я что то нахимичил и у меня не роботала та модель сейчас зделал по новой все вроде роботает стабильно.
ответ
Проблема была решена сменой версии 3Ds max так как на версии 2016 года плагин роботает некоректно.

23

» WarCraft 3 / Текстуры

Похожие вопросы:

ответ
Vova47, отредактируй путь к текстуре при помощи Mdlvis.
ответ
~8gabriel8:
Какой хочешь, если текстура в одной папке с моделью, например, обе на рабочем столе, то никакого, а если текстура в mpq-архиве игры, то путь к ней в архиве. Можно также поставить папку war3imported для удобства, чтобы не надо было пути удалять.
ответ
Хух, понеслось:
  1. Открыл карту, нажми сохранить (путь к карте не должен содержать русских букв) и сразу зайди в раздел "Extensions" - "Edit tileset".
  2. Выбрал нужные тайлсеты, нажми ок, карта сохранится (или сохрани сам) и тогда выходи из карты.
  3. Заходи в карту.
ответ
Каро, чтобы закрыть вопрос - выбери лучший ответ.
ответ
да можно, даже текстуры накладывать друг на друга ,делаеться это в warcraft model editor